In the computer industry it has long been recognized that data stored within a computer system's mass storage sub-structure, such as a hard disk drive, should be "backed up", where a copy of the data is made on a regular basis, in order to prevent the loss of that data should the computer system malfunction or "crash" or otherwise become inoperative or unavailable. Early in the field of database systems, data files were stored on magnetic hard disks, providing relatively fast random access, and were then regularly backed up to magnetic tapes, a medium which provides slower sequential access but which can be used to store data densely and inexpensively. These removable magnetic tapes permit archived data to be moved to another location for safekeeping or for later loading to a different computer system.
Traditionally such backups have been performed on a regularly scheduled basis with separate archives being created monthly, weekly, daily or even hourly. However, the timing of such backups has had to be coordinated with the actual usage of the computer system being backed up, since frequently a backup cannot be performed at the same time that the computer system is also being used for data processing.
When computer database programs were designed for operating primarily in a batch processing mode, on a large mainframe computer, such backups were readily scheduled and easily performed since users did not enjoy an interactive involvement with the computer system. However, with the development of time sharing systems and other "transactional" data base systems, including those found on personal computers, users now expect to interact with computer systems "on-line" and in real time, creating procedural difficulties for the process of backing up data. These difficulties result from the fact that in order to back up a data base or other information stored in a computer system, and especially when the data to be backed up is of a transactional nature, data must be frozen at some point in time just prior to performing the backup in order to maintain the integrity of the database and eliminate the possibility of losing data which may change during backup.
The simplest way to accomplish this task is to prevent access to the database while it is being backed up. However, such a technique results in a disadvantage to the user in that the user is unable to access the database while it is being backed up, effectively taking the database "off line" and creating an inconvenience leading to inefficiency. Such a technique may also create problems regarding data integrity when, for example, a transaction is in progress but has not yet been committed to the database when a backup begins.
Another problem identified in the prior art is the fact that in traditional backup systems a database, parts of which may be located on multiple disk drives, is frequently backed up to a single backup device usually comprising a single backup tape or other storage medium. Such an architecture, while keeping the cost of media and equipment required to perform a backup low, also results in decreased productivity and increased inefficiency. Using such a system, only one hard disk drive containing data can be backed up to a tape drive at a time, requiring other hard disk drives to wait before dumping their data to the backup device.
One possible solution to the above noted inefficiency is to utilize a backup system which incorporates multiple archive devices. However, a new problem is introduced relating to the restoration of archived data when the architecture or configuration of the machine to which the data is to be restored does not match the architecture or configuration of the machine from which the data was originally obtained. This problem occurs when reloading data, previously backed up onto multiple archive devices, to a different computer (possibly located at a different site) which has a different configuration of archive devices and mass storage devices. For example, consider a backup set which may have been recorded across 8 tape drives and which must be restored to a computer system with only 2 tape drives. In such a situation, under the prior art, a significant effort on the part of the system operator will be required to coordinate the mounting and loading of data from the backup tape set to the secondary computer system. In this example it is necessary to make sure that data which is being loaded from one tape does not overwrite data which has previously been loaded from an earlier tape, unless such later loaded data was also created or modified later in time. Under such a system, restoring a backed-up database to a different computer, requires constant intervention on the part of a human operator carefully checking logs of the contents of each backup tape to make sure that the full recorded image of the database taken at backup time is restored correctly. Therefore, while in practice such backups are possible, and may be necessary to conduct business in an emergency situation, they may not be conducted as often as optimally required due to the amount of effort necessary to perform such a restoration.
Therefore, it has been determined that the need exists for an improved data backup system which overcomes the limitations noted above in the prior art, by permitting data to be backed up from a transactional database to multiple archive devices, simultaneously, without the need to lock out all access to the database during backup. It has been determined further that the need exists to permit the restoration of archived data to a secondary computer system where the data is restored from fewer archive devices than were used for backup recording purposes. Such a system would ensure that data which is loaded from an archive device to a secondary database always loads the oldest information first and the most current information last in order to prevent obsolete data from overwriting fresh data.
Accordingly, an improved data backup system is provided which accomplishes the aforenoted goals resulting in increased system performance, along with ease and convenience of use, while preserving the integrity of backed up data.